"""
Case Type   : 服务端工具
Case Name   : omm用户 gs_check 检查视图报错查看报错文件
Create At   : 2024-10-9
Owner       : ningyali
Description :
    1.由root用户切换到omm用户下
    2.在非本地模式下运行openGauss的用户检查指定检查项：gs_check -i CheckCreateView
    3.在本地模式下运行openGauss的用户检查指定检查项：gs_check -i CheckCreateView -L
Expect      :
    1.切换到omm用户下
    2.非本地模式下检查失败 生成失败文件
    3.本地模式下执行检查完成
History     : 
"""
import os
import unittest

from testcase.utils.Constant import Constant
from testcase.utils.Logger import Logger
from yat.test import Node
from yat.test import macro


class Tools(unittest.TestCase):
    def setUp(self):
        self.log = Logger()
        text = f'-----{os.path.basename(__file__)} start-----'
        self.log.info(text)
        self.pri_user = Node('PrimaryDbUser')
        self.constant = Constant()

    def test_server_tools(self):
        text = '----step1: 由root用户切换到omm用户下 expect: 成功----'
        self.log.info(text)
        self.log.info('实例化user节点即可')

        text = '----step2: 在非本地模式下运行openGauss的用户检查指定检查项 ' \
               'expect: 非本地模式下检查失败 生成失败文件----'
        self.log.info(text)
        cmd = f'source {macro.DB_ENV_PATH};' \
              f'gs_check -i CheckCreateView'
        self.log.info(cmd)
        res = self.pri_user.sh(cmd).result()
        self.log.info(res)
        self.assertIn('For more information please refer to',
                      res, f'执行失败:{text}')

        text = '----step3: 在本地模式下运行openGauss的用户检查指定检查项 expect: 本地模式下执行检查完成----'
        self.log.info(text)
        cmd = f'source {macro.DB_ENV_PATH};' \
              f'gs_check -i CheckCreateView -L'
        self.log.info(cmd)
        res = self.pri_user.sh(cmd).result()
        self.log.info(res)
        self.assertIn('[RST] OK', res, f'执行失败:{text}')

    def tearDown(self):
        self.log.info('-----无需清理环境-----')
        text = f'-----{os.path.basename(__file__)} end-----'
        self.log.info(text)
